package com.evil.application.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 应用表单控件表
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
@Data
@TableName(value = "evil_application_form_control")
public class ApplicationFormControl implements Serializable {

    /**
     * id
     */
    @TableId(value = "control_id", type = IdType.AUTO)
    private Long controlId;

    /**
     * 企业id
     */
    @TableField(value = "enterprise_id")
    private Long enterpriseId;

    /**
     * 表单id
     */
    @TableField(value = "form_id")
    private Long formId;

    /**
     * 控件code
     */
    @TableField(value = "control_code")
    private String controlCode;

    /**
     * 字段名称
     */
    @TableField(value = "control_field")
    private String controlField;

    /**
     * 控件标题
     */
    @TableField(value = "control_title")
    private String controlTitle;

    /**
     * 控件提示
     */
    @TableField(value = "control_tip")
    private String controlTip;

    /**
     * 控件大小，最小值6，最大值24
     */
    @TableField(value = "control_size")
    private Integer controlSize;

    /**
     * 标签宽度
     */
    @TableField(value = "control_label_size")
    private Integer controlLabelSize;

    /**
     * 控件配置
     */
    @TableField(value = "control_config")
    private String controlConfig;

    /**
     * 显示标签(0:否, 1:是)
     */
    @TableField(value = "show_label")
    private Integer showLabel;

    /**
     * 排序 越小越靠前
     */
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 校验表达式
     */
    @TableField(value = "regulars")
    private String regulars;

    /**
     * 是否必填(0:非必填, 1:必填)
     */
    @TableField(value = "required")
    private Integer required;

    /**
     * 不允许重复(0:允许, 1:不允许)
     */
    @TableField(value = "no_repeat")
    private Integer noRepeat;

    /**
     * 样式
     */
    @TableField(value = "`style`")
    private String style;

    /**
     * 限制字数(0:否, 1:是)
     */
    @TableField(value = "length_limit_status")
    private Integer lengthLimitStatus;

    /**
     * 最小长度
     */
    @TableField(value = "min_length")
    private Integer minLength;

    /**
     * 最大长度
     */
    @TableField(value = "max_length")
    private Integer maxLength;

    /**
     * 开关配置
     */
    @TableField(value = "switch_config")
    private String switchConfig;

    /**
     * 步进
     */
    @TableField(value = "step")
    private Integer step;

    /**
     * 显示间断点(0:否, 1:是)
     */
    @TableField(value = "show_stops")
    private Integer showStops;

    /**
     * 范围选择(0:否, 1:是)
     */
    @TableField(value = "range_status")
    private Integer rangeStatus;

    /**
     * 计数器是否严格步进(0:否, 1:是)
     */
    @TableField(value = "step_strictly")
    private Integer stepStrictly;

    /**
     * 步进按钮位置(右侧：right)
     */
    @TableField(value = "controls_position")
    private String controlsPosition;

    /**
     * 控件类型(前端定制)
     */
    @TableField(value = "tag_icon")
    private String tagIcon;

    /**
     * 默认内容类型(0:自定义, 1:关联应用数据, 2: 通过公式运算)
     */
    @TableField(value = "default_value_type")
    private Integer defaultValueType;

    /**
     * 默认内容
     */
    @TableField(value = "default_value")
    private String defaultValue;

    /**
     * 公式
     */
    @TableField(value = "formula")
    private String formula;

    /**
     * 描述|简介
     */
    @TableField(value = "description")
    private String description;

    /**
     * 关联公式
     */
    @TableField(value = "related_formula")
    private String relatedFormula;

    /**
     * 关联表单id
     */
    @TableField(value = "related_form_id")
    private Long relatedFormId;

    /**
     * 最大上传体积 MB
     */
    @TableField(value = "file_size")
    private Integer fileSize;

    /**
     * 文件类型，请输入自定义的文件扩展名，多个请用逗号隔开，如: txt, pdf, mp3等。
     */
    @TableField(value = "file_type")
    private String fileType;

    /**
     * 自动压缩(0:否, 1:是)
     */
    @TableField(value = "auto_compress")
    private Integer autoCompress;

    /**
     * 限制文件个数(0:否, 1:是)
     */
    @TableField(value = "max_file_limit_status")
    private Integer maxFileLimitStatus;

    /**
     * 限制文件个数
     */
    @TableField(value = "max_file_limit")
    private Integer maxFileLimit;

    /**
     * 是否显示提示(0:否, 1:是)
     */
    @TableField(value = "show_tip")
    private Integer showTip;

    /**
     * 可以输入小数(0:否, 1:是)
     */
    @TableField(value = "decimal_status")
    private Integer decimalStatus;

    /**
     * 小数位
     */
    @TableField(value = "decimal_accuracy")
    private Integer decimalAccuracy;

    /**
     * 限制数值范围(0:否, 1:是)
     */
    @TableField(value = "decimal_limit_scope")
    private Integer decimalLimitScope;

    /**
     * 最小值
     */
    @TableField(value = "min_decimal")
    private Long minDecimal;

    /**
     * 最大值
     */
    @TableField(value = "max_decimal")
    private Long maxDecimal;

    /**
     * 数值显示格式(0:无, 1:千分符, 2:百分比)
     */
    @TableField(value = "decimal_format")
    private Integer decimalFormat;

    /**
     * 多行文本，最小行
     */
    @TableField(value = "`min_rows`")
    private Integer minRows;

    /**
     * 多行文本，最大行
     */
    @TableField(value = "`max_rows`")
    private Integer maxRows;

    /**
     * 是否显示密码(0:否, 1:是)
     */
    @TableField(value = "show_password")
    private Integer showPassword;

    /**
     * 选项分隔符
     */
    @TableField(value = "select_separator")
    private String selectSeparator;

    /**
     * 允许半选(0:否, 1:是)
     */
    @TableField(value = "half_selected")
    private Integer halfSelected;

    /**
     * 是否开启其他选项(0:否, 1:是)
     */
    @TableField(value = "other_select")
    private Integer otherSelect;

    /**
     * 数据类型(1-静态, 2-关联)
     */
    @TableField(value = "data_type")
    private Integer dataType;

    /**
     * 是否显示分数(0:否, 1:是)
     */
    @TableField(value = "show_score")
    private Integer showScore;

    /**
     * 数据类型
     */
    @TableField(value = "layout")
    private String layout;

    /**
     * 强制更新key
     */
    @TableField(value = "render_key")
    private String renderKey;

    /**
     * 前缀
     */
    @TableField(value = "prepend")
    private String prepend;

    /**
     * 前缀icon
     */
    @TableField(value = "prefix_icon")
    private String prefixIcon;

    /**
     * 后缀
     */
    @TableField(value = "append")
    private String append;

    /**
     * 后缀icon
     */
    @TableField(value = "suffix_icon")
    private String suffixIcon;

    /**
     * 占位符
     */
    @TableField(value = "placeholder")
    private String placeholder;

    /**
     * 是否可以清除(0:否, 1:是)
     */
    @TableField(value = "clearable")
    private Integer clearable;

    /**
     * 是否显示输入长度(0:否, 1:是)
     */
    @TableField(value = "show_word_limit")
    private Integer showWordLimit;

    /**
     * 是否可以多选(0:否, 1:是)
     */
    @TableField(value = "multiple")
    private Integer multiple;

    /**
     * 是否开启币种(0:否, 1:是)
     */
    @TableField(value = "currency_status")
    private Integer currencyStatus;

    /**
     * 币种
     */
    @TableField(value = "currency_code")
    private String currencyCode;

    /**
     * 是否开启汇总方式(0:否, 1:是)
     */
    @TableField(value = "summary_status")
    private Integer summaryStatus;

    /**
     * 汇总方式
     */
    @TableField(value = "summary_type")
    private Integer summaryType;

    /**
     * 是否可以筛选选项(0:否, 1:是)
     */
    @TableField(value = "filterable")
    private Integer filterable;

    /**
     * 选项样式(默认: default, 按钮: button)
     */
    @TableField(value = "option_style")
    private String optionStyle;

    /**
     * 最少选择
     */
    @TableField(value = "min_selected")
    private Integer minSelected;

    /**
     * 最大选择
     */
    @TableField(value = "max_selected")
    private Integer maxSelected;

    /**
     * 级联选择配置
     */
    @TableField(value = "cascade_select_config")
    private String cascadeSelectConfig;

    /**
     * 颜色格式
     */
    @TableField(value = "color_format")
    private String colorFormat;

    /**
     * 成员选择控件配置
     */
    @TableField(value = "control_select_config")
    private String controlSelectConfig;

    /**
     * 日期格式(0:年-月-日, 1:年-月-日 时:分, 2: 年-月-日 时:分:秒)
     */
    @TableField(value = "date_type")
    private Integer dateType;

    /**
     * 允许时间重叠(0:否, 1:是)
     */
    @TableField(value = "date_overlap")
    private Integer dateOverlap;

    /**
     * 开始占位符
     */
    @TableField(value = "start_placeholder")
    private String startPlaceholder;

    /**
     * 结束占位符
     */
    @TableField(value = "end_placeholder")
    private String endPlaceholder;

    /**
     * 限制日期/时间选择范围
     */
    @TableField(value = "selectable_range")
    private String selectableRange;

    /**
     * 布局类型('default': 默认, 'flex': 动态)
     */
    @TableField(value = "layout_type")
    private String layoutType;

    /**
     * 左右对齐类型(start:左对齐 end:右对齐 center:居中 space-between:两端对齐  space-around:环绕对齐)
     */
    @TableField(value = "justify")
    private String justify;

    /**
     * 上下对齐类型(top:顶部  middle:居中  bottom:底部)
     */
    @TableField(value = "align")
    private String align;

    /**
     * 标签页配置
     */
    @TableField(value = "tabs_config")
    private String tabsConfig;

    /**
     * 上级表单控件id(表格子控件时值有效)
     */
    @TableField(value = "parent_control_id")
    private Long parentControlId;

    /**
     * 源控件id
     */
    @TableField(value = "source_control_id")
    private Long sourceControlId;

    /**
     * 状态(0:禁用, 1:开启)
     */
    @TableField(value = "is_enable")
    private Integer isEnable;

    /**
     * 是否已删除(0:否, 1:是)
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 创建人
     */
    @TableField(value = "creator_id")
    private Long creatorId;

    /**
     * 创建人名字
     */
    @TableField(value = "creator_name")
    private String creatorName;

    /**
     * 修改操作人
     */
    @TableField(value = "modifier_id")
    private Long modifierId;

    /**
     * 修改操作人名字
     */
    @TableField(value = "modifier_name")
    private String modifierName;

    /**
     * 创建时间
     */
    @TableField(value = "created")
    private Date created;

    /**
     * 更新时间
     */
    @TableField(value = "updated")
    private Date updated;

    @Serial
    private static final long serialVersionUID = 1L;

    public static final String COL_CONTROL_ID = "control_id";

    public static final String COL_FORM_ID = "form_id";

    public static final String COL_CONTROL_CODE = "control_code";

    public static final String COL_CONTROL_FIELD = "control_field";

    public static final String COL_CONTROL_TITLE = "control_title";

    public static final String COL_CONTROL_TIP = "control_tip";

    public static final String COL_CONTROL_SIZE = "control_size";

    public static final String COL_CONTROL_LABEL_SIZE = "control_label_size";

    public static final String COL_CONTROL_CONFIG = "control_config";

    public static final String COL_SHOW_LABEL = "show_label";

    public static final String COL_SORT = "sort";

    public static final String COL_REGULARS = "regulars";

    public static final String COL_REQUIRED = "required";

    public static final String COL_NO_REPEAT = "no_repeat";

    public static final String COL_STYLE = "style";

    public static final String COL_LENGTH_LIMIT_STATUS = "length_limit_status";

    public static final String COL_MIN_LENGTH = "min_length";

    public static final String COL_MAX_LENGTH = "max_length";

    public static final String COL_SWITCH_CONFIG = "switch_config";

    public static final String COL_STEP = "step";

    public static final String COL_SHOW_STOPS = "show_stops";

    public static final String COL_RANGE_STATUS = "range_status";

    public static final String COL_STEP_STRICTLY = "step_strictly";

    public static final String COL_CONTROLS_POSITION = "controls_position";

    public static final String COL_TAG_ICON = "tag_icon";

    public static final String COL_DEFAULT_VALUE_TYPE = "default_value_type";

    public static final String COL_DEFAULT_VALUE = "default_value";

    public static final String COL_FORMULA = "formula";

    public static final String COL_DESCRIPTION = "description";

    public static final String COL_RELATED_FORMULA = "related_formula";

    public static final String COL_RELATED_FORM_ID = "related_form_id";

    public static final String COL_FILE_SIZE = "file_size";

    public static final String COL_FILE_TYPE = "file_type";

    public static final String COL_AUTO_COMPRESS = "auto_compress";

    public static final String COL_MAX_FILE_LIMIT_STATUS = "max_file_limit_status";

    public static final String COL_MAX_FILE_LIMIT = "max_file_limit";

    public static final String COL_SHOW_TIP = "show_tip";

    public static final String COL_DECIMAL_STATUS = "decimal_status";

    public static final String COL_DECIMAL_ACCURACY = "decimal_accuracy";

    public static final String COL_DECIMAL_LIMIT_SCOPE = "decimal_limit_scope";

    public static final String COL_MIN_DECIMAL = "min_decimal";

    public static final String COL_MAX_DECIMAL = "max_decimal";

    public static final String COL_DECIMAL_FORMAT = "decimal_format";

    public static final String COL_MIN_ROWS = "min_rows";

    public static final String COL_MAX_ROWS = "max_rows";

    public static final String COL_SHOW_PASSWORD = "show_password";

    public static final String COL_SELECT_SEPARATOR = "select_separator";

    public static final String COL_HALF_SELECTED = "half_selected";

    public static final String COL_OTHER_SELECT = "other_select";

    public static final String COL_SHOW_SCORE = "show_score";

    public static final String COL_LAYOUT = "layout";

    public static final String COL_RENDER_KEY = "render_key";

    public static final String COL_PREPEND = "prepend";

    public static final String COL_PREFIX_ICON = "prefix_icon";

    public static final String COL_APPEND = "append";

    public static final String COL_SUFFIX_ICON = "suffix_icon";

    public static final String COL_PLACEHOLDER = "placeholder";

    public static final String COL_CLEARABLE = "clearable";

    public static final String COL_SHOW_WORD_LIMIT = "show_word_limit";

    public static final String COL_MULTIPLE = "multiple";

    public static final String COL_CURRENCY_STATUS = "currency_status";

    public static final String COL_CURRENCY_CODE = "currency_code";

    public static final String COL_SUMMARY_STATUS = "summary_status";

    public static final String COL_SUMMARY_TYPE = "summary_type";

    public static final String COL_FILTERABLE = "filterable";

    public static final String COL_OPTION_STYLE = "option_style";

    public static final String COL_MIN_SELECTED = "min_selected";

    public static final String COL_MAX_SELECTED = "max_selected";

    public static final String COL_CASCADE_SELECT_CONFIG = "cascade_select_config";

    public static final String COL_COLOR_FORMAT = "color_format";

    public static final String COL_CONTROL_SELECT_CONFIG = "control_select_config";

    public static final String COL_DATE_TYPE = "date_type";

    public static final String COL_DATE_OVERLAP = "date_overlap";

    public static final String COL_START_PLACEHOLDER = "start_placeholder";

    public static final String COL_END_PLACEHOLDER = "end_placeholder";

    public static final String COL_SELECTABLE_RANGE = "selectable_range";

    public static final String COL_LAYOUT_TYPE = "layout_type";

    public static final String COL_JUSTIFY = "justify";

    public static final String COL_ALIGN = "align";

    public static final String COL_TABS_CONFIG = "tabs_config";

    public static final String COL_PARENT_CONTROL_ID = "parent_control_id";

    public static final String COL_SOURCE_CONTROL_ID = "source_control_id";

    public static final String COL_IS_ENABLE = "is_enable";

    public static final String COL_IS_DELETED = "is_deleted";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_CREATOR_NAME = "creator_name";

    public static final String COL_MODIFIER_ID = "modifier_id";

    public static final String COL_MODIFIER_NAME = "modifier_name";

    public static final String COL_CREATED = "created";

    public static final String COL_UPDATED = "updated";
}